<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        /* ==================== 面试题 ===================== */
        // 1.基本数据类型
        // Number String Boolean  /  undefined null / Symbol BigInt
        // 2.引用类型
        // Object ==>
        // Function / Array / RegExp / Date / Math / Error等

        // 3. 基本类型的数据和引用类型的数据在内存中怎么存储的呢?
        // 栈 （Stack）： 基本数据类型的值， 存在栈内存里面。
        // 堆 （Heap）：引用类型的数据，栈里存放的是地址，这个地址指向堆里面的数据。
        /* ==================== end ===================== */

        // 1. 基本数据类型不可以添加属性和方法
        let str = '123'
        str.a = '222'
        str.max = function () { }
        console.log(str) // '123'
        console.log(str.a) // undefined
        console.log(str.max) // undefined

        // 2. 基本数据类型是按值访问的， 操作的是存储在变量中的实际值
        let a = 666
        a = 888 // 修改的是值

        // 3. 引用类型，直接赋值，修改的地址
        let obj = { name: 'jj', age: 18 }
        obj2 = obj
        obj.name = 'll'
        console.log(obj2)
    </script>
</body>

</html>